package com.dingreading.cloud.mall.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "balance_log")
public class BalanceLog implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 添加时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    /**
     * 修改时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 流水号
     */
    @ApiModelProperty(value = "流水号")
    private String code;

    /**
     * 收支项目
     */
    @ApiModelProperty(value = "收支项目")
    private Integer projectType;

    /**
     * 收支项目名
     */
    @ApiModelProperty(value = "收支项目名")
    private String projectName;

    /**
     * 关联订单号
     */
    @ApiModelProperty(value = "关联订单号")
    private String orderCode;

    /**
     * 金额
     */
    @ApiModelProperty(value = "金额")
    private Double money;

    /**
     * 优惠券id
     */
    @ApiModelProperty(value = "优惠券id")
    private Long couponStaffId;

    /**
     * 代金金额
     */
    @ApiModelProperty(value = "代金金额")
    private Double couponMoney;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 收支类型
     * 1.收入 2.支出
     */
    @ApiModelProperty(value = "收支类型 1.收入 2.支出")
    private Integer income;

    /**
     * 员工名
     */
    @ApiModelProperty(value = "员工名")
    private String staffName;

    /**
     * 员工手机号
     */
    @ApiModelProperty(value = "员工手机号")
    private String phone;

    /**
     * 门店uid
     */
    @ApiModelProperty(value = "门店uid")
    private String storeUid;

    /**
     * 员工uid
     */
    @ApiModelProperty(value = "员工uid")
    private String staffUid;

    /**
     * 加盟商名称
     */
    @ApiModelProperty(value = "加盟商名称")
    private String storeName;

    /**
     * 线上支付
     * 1.线上支付 2.线下支付
     */
    @ApiModelProperty(value = "线上支付 1.线上支付 2.线下支付")
    private Integer payOnline;

    /**
     * 支付时间
     */
    @ApiModelProperty(value = "支付时间")
    private String payTime;

    /**
     * 付款方账号
     */
    @ApiModelProperty(value = "付款方账号")
    private String buyerId;

    /**
     * 支付订单号
     */
    @ApiModelProperty(value = "支付订单号")
    private String tradeNo;

    /**
     * 支付类型 1微信,2支付宝
     */
    @ApiModelProperty(value = "支付类型 1微信,2支付宝")
    private Integer payType;

    /**
     * 交易方式 扫码支付：NATIVE,app支付：APP,公众号支付：JSAPI,H5支付：WAP，堡币支付：BAOBI
     */
    @ApiModelProperty(value = "交易方式")
    private String tradeType;

    /**
     * 交易方式名
     */
    @ApiModelProperty(value = "交易方式名")
    private String tradeTypeName;

    /**
     * 支付证明图
     */
    @ApiModelProperty(value = "支付证明图")
    private String payImg;

    /**
     * 数据来源 1.系统 2.手动
     */
    @ApiModelProperty(value = "数据来源 1.系统 2.手动")
    private Integer source;

    /**
     * 操作人id
     */
    @ApiModelProperty(value = "操作人id")
    private Long operatorId;

    /**
     * 操作人uid
     */
    @ApiModelProperty(value = "操作人uid")
    private String operatorUid;

    /**
     * 操作人姓名
     */
    @ApiModelProperty(value = "操作人姓名")
    private String operator;

    /**
     * 状态 -1.已退费 0.取消 1.正常
     */
    @ApiModelProperty(value = "状态 -1.已退费 0.取消 1.正常")
    private Integer status;
}
